Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
"Error de sintaxis no detectado: token l inesperado en JSON en la posición 0", pero aún funciona, ¿por qué?

Primera vez que uso websockets con Go y obtengo un error extraño que no interrumpe el programa, y aún continúa como si no fuera un problema. El cliente es una aplicación de página única de ReactJS.

Cliente JS:

 const socket = new WebSocket("ws://localhost:5000/ws"); setConnection(socket); socket.onmessage = (e) => { const message = JSON.parse(e.data) console.log("message:", message) switch (message.Command) { case "loginResult": if (message.Result) { console.log("login worked"); }else{ console.log("login did not work"); } break; } }

Fragmento de Go está obteniendo JSON de:

 result := ws.LoginResult{ BaseMessage: ws.BaseMessage{ Command: "loginResult", }, Result: false, } b, err := json.Marshal(result) if err != nil { fmt.Println(err) return } if err = conn.WriteMessage(msgType, b); err != nil { return }

Y la salida:

 in here WebsocketProvider.tsx:20 message: {Command: 'loginResult', Result: false} WebsocketProvider.tsx:27 login did not work VM3502:1 Uncaught SyntaxError: Unexpected token l in JSON at position 0 at JSON.parse (<anonymous>) at WebSocket.socket.onmessage (WebsocketProvider.tsx:19) socket.onmessage @ WebsocketProvider.tsx:19

¿Alguien tiene alguna idea de por qué este es el caso?

Se encontró la solución:

  • Tenía que ver con la migración del código y que una línea sobrante estaba haciendo una llamada que se ignoró, por lo tanto, no hizo ninguna diferencia en la ejecución. No tiene nada que ver con que el formato JSON sea diferente, ya que las bibliotecas de Go lo generaron automáticamente.
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

la función que ha escrito para onmessage se ejecutará cada vez que se reciba un mensaje websocket válido .

De acuerdo con el registro de depuración que ha publicado, la parte que funcionó fue cuando recibió JSON válido del servidor y la función se ejecutó hasta su finalización, como lo demuestra esta línea:

 WebsocketProvider.tsx:27 login did not work

Marque el número de línea.

Después de esto obtienes:

 VM3502:1 Uncaught SyntaxError: Unexpected token l in JSON at position 0 at JSON.parse (<anonymous>) at WebSocket.socket.onmessage (WebsocketProvider.tsx:19) socket.onmessage @ WebsocketProvider.tsx:19

marque el número de línea :19 Esta es la línea con su JSON.parse .

Mi conjetura sería que este es un nuevo mensaje json no válido y de hecho entró en pánico aquí y el resto de la función no se ejecutó; el bit que se ejecutó fue un mensaje anterior con json válido .

En cuanto a por qué falló, coloque un archivo console.log antes de su JSON.parse como lo sugiere @emptyhua para ver qué está recibiendo exactamente.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda